package com.example.demo.controller;

import com.aliyuncs.utils.StringUtils;
import com.example.demo.service.SendSms;
import io.netty.util.internal.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.UUID;
import java.util.concurrent.TimeUnit;

/**
 * @version 1.0
 * @author XiaoMin
 * @date:2020/5/1
 */
@RestController
@CrossOrigin//跨域支持
public class SmsApiController {
    @Autowired
    private SendSms sendSms;
    @Autowired
    private RedisTemplate<String,String> redisTemplate;
    @GetMapping("/send/{phone}")
    public String code(@PathVariable("phone")String phone){
//        调用发送业务方法
        String code = redisTemplate.opsForValue().get(phone);
        if(!StringUtils.isEmpty(code)){
            return phone + ":" + code + "已存在，还没有过期";
        }
//        生成验证码并存储到redis中
        code = UUID.randomUUID().toString().substring(0, 4);
        HashMap<String,Object> hashMap = new HashMap();
        hashMap.put("code",code);
        System.out.println(phone);
        boolean isSend=sendSms.send(phone,"SMS_189615919",hashMap);
        if(isSend){
            redisTemplate.opsForValue().set(phone,code,5, TimeUnit.MINUTES);
            return phone+":"+code+"发送成功";
        }
        else{
            return phone+":"+code+"发送失败";
        }
    }
}
